From: tsteven4 <13596209+tsteven4@users.noreply.github.com> Date: Thu, 26 Sep 2024 23:42:57 +0000 (-0600) Subject: use containers for xml_init lists. (#1345) X-Git-Tag: archive/raspbian/1.10.0+ds-2+rpi1~1^2~12^2^2~42 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=48cdbecf9f00dcc16f780d79cabff6b10b4d0353;p=gpsbabel.git use containers for xml_init lists. (#1345) --- diff --git a/gtrnctr.cc b/gtrnctr.cc index 5a306a79f..8442a1f96 100644 --- a/gtrnctr.cc +++ b/gtrnctr.cc @@ -43,11 +43,20 @@ #define MYNAME "gtc" +const QStringList GtrnctrFormat::gtc_tags_to_ignore = { + "TrainingCenterDatabase", + "CourseFolder", + "Running", + "Biking", + "Other", + "Multisport" +}; + void GtrnctrFormat::rd_init(const QString& fname) { xml_reader = new XmlGenericReader; - xml_reader->xml_init(fname, this, gtc_map, nullptr, gtc_tags_to_ignore, nullptr); + xml_reader->xml_init(fname, this, gtc_map, nullptr, gtc_tags_to_ignore); } void diff --git a/gtrnctr.h b/gtrnctr.h index 654b0d995..1b5b7833f 100644 --- a/gtrnctr.h +++ b/gtrnctr.h @@ -28,6 +28,7 @@ #include // for QList #include // for QString +#include // for QStringList #include // for QVector #include // for QXmlStreamAttributes @@ -73,16 +74,6 @@ private: static constexpr int kGtcMaxNameLen = 15; static constexpr const char* gtc_sportlist[] = { "Biking", "Running", "MultiSport", "Other" }; - static constexpr const char* gtc_tags_to_ignore[] = { - "TrainingCenterDatabase", - "CourseFolder", - "Running", - "Biking", - "Other", - "Multisport", - nullptr, - }; - /* Member Functions */ [[gnu::format(printf, 3, 4)]] void gtc_write_xml(int indent, const char* fmt, ...); @@ -124,6 +115,7 @@ private: /* Data Members */ + static const QStringList gtc_tags_to_ignore; gbfile* ofd{}; int lap_ct = 0; int lap_s = 0; diff --git a/kml.cc b/kml.cc index 7cd37e57f..684fb481d 100644 --- a/kml.cc +++ b/kml.cc @@ -71,6 +71,19 @@ #define MYNAME "kml" +const QStringList KmlFormat::kml_tags_to_ignore = { + "kml", + "Document", + "Folder" +}; + +const QStringList KmlFormat::kml_tags_to_skip = { + "Camera", + "LookAt", + "styleUrl", + "snippet" +}; + const QVector KmlFormat::mt_fields_def = { { wp_field::igc_enl, "igc_enl", "Engine Noise", "double" }, { wp_field::igc_tas, "igc_tas", "True Airspd", "double" }, diff --git a/kml.h b/kml.h index 4ed4d4008..e225ece41 100644 --- a/kml.h +++ b/kml.h @@ -22,22 +22,23 @@ #ifndef KML_H_INCLUDED_ #define KML_H_INCLUDED_ -#include // for bitset -#include // for tuple, make_tuple, tie +#include // for bitset +#include // for tuple, make_tuple, tie -#include // for QHash -#include // for QList -#include // for QString, QStringLiteral, operator+, operator!= -#include // for QVector -#include // for QXmlStreamAttributes +#include // for QHash +#include // for QList +#include // for QString, QStringLiteral, operator+, operator!= +#include // for QStringList +#include // for QVector +#include // for QXmlStreamAttributes #include "defs.h" #include "format.h" -#include "src/core/datetime.h" // for DateTime -#include "src/core/file.h" // for File -#include "src/core/xmlstreamwriter.h" // for XmlStreamWriter -#include "units.h" // for UnitsFormatter -#include "xmlgeneric.h" // for cb_cdata, cb_end, cb_start, xg_callback, xg_cb_type, xml_deinit, xml_ignore_tags, xml_init, xml_read, xg_tag_mapping +#include "src/core/datetime.h" // for DateTime +#include "src/core/file.h" // for File +#include "src/core/xmlstreamwriter.h" // for XmlStreamWriter +#include "units.h" // for UnitsFormatter +#include "xmlgeneric.h" // for cb_cdata, cb_end, cb_start, xg_callback, xg_cb_type, xml_deinit, xml_ignore_tags, xml_init, xml_read, xg_tag_mapping class KmlFormat : public Format @@ -115,21 +116,6 @@ private: static constexpr const char* default_precision = "6"; static constexpr int kml_color_limit = 204; /* allowed range [0,255] */ - static constexpr const char* kml_tags_to_ignore[] = { - "kml", - "Document", - "Folder", - nullptr - }; - - static constexpr const char* kml_tags_to_skip[] = { - "Camera", - "LookAt", - "styleUrl", - "snippet", - nullptr - }; - /* Member Functions */ void kml_init_color_sequencer(int steps_per_rev); @@ -200,6 +186,8 @@ private: /* Data Members */ + static const QStringList kml_tags_to_ignore; + static const QStringList kml_tags_to_skip; static const QVector mt_fields_def; track_trait_t kml_track_traits; QHash kml_track_traits_hash; diff --git a/xmlgeneric.cc b/xmlgeneric.cc index 1aae5b6e7..792bd0574 100644 --- a/xmlgeneric.cc +++ b/xmlgeneric.cc @@ -21,6 +21,7 @@ #include "xmlgeneric.h" +#include // for for_each #include // for as_const #include // for QByteArray @@ -66,7 +67,7 @@ XmlGenericReader::xml_tbl_lookup(const QString& tag, xg_cb_type cb_type) void XmlGenericReader::xml_common_init(const QString& fname, const char* encoding, - const char* const* ignorelist, const char* const* skiplist) + const QStringList ignorelist, const QStringList skiplist) { rd_fname = fname; @@ -80,16 +81,13 @@ XmlGenericReader::xml_common_init(const QString& fname, const char* encoding, } xg_shortcut_taglist.clear(); - if (ignorelist != nullptr) { - for (; ignorelist && *ignorelist; ++ignorelist) { - xg_shortcut_taglist.insert(QString::fromUtf8(*ignorelist), xg_shortcut::sc_ignore); - } - } - if (skiplist != nullptr) { - for (; skiplist && *skiplist; ++skiplist) { - xg_shortcut_taglist.insert(QString::fromUtf8(*skiplist), xg_shortcut::sc_skip); - } - } + std::for_each(ignorelist.cbegin(), ignorelist.cend(), [this](const QString& tag)->void { + xg_shortcut_taglist.insert(tag, xg_shortcut::sc_ignore); + }); + + std::for_each(skiplist.cbegin(), skiplist.cend(), [this](const QString& tag)->void { + xg_shortcut_taglist.insert(tag, xg_shortcut::sc_skip); + }); } XmlGenericReader::xg_shortcut diff --git a/xmlgeneric.h b/xmlgeneric.h index aec623b84..dd1bb86a5 100644 --- a/xmlgeneric.h +++ b/xmlgeneric.h @@ -30,6 +30,7 @@ #include // for QList #include // for QRegularExpression #include // for QString +#include // for QStringList #include // for QStringView #include // for QTextCodec #include // for QXmlStreamAttributes @@ -88,8 +89,8 @@ public: template void xml_init(const QString& fname, MyFormat* instance, const QList>& tbl, const char* encoding = nullptr, - const char* const* ignorelist = nullptr, - const char* const* skiplist = nullptr) + const QStringList ignorelist = QStringList(), + const QStringList skiplist = QStringList()) { build_xg_tag_map(instance, tbl); @@ -164,7 +165,7 @@ private: XgCallbackBase* xml_tbl_lookup(const QString& tag, xg_cb_type cb_type); void xml_common_init(const QString& fname, const char* encoding, - const char* const* ignorelist, const char* const* skiplist); + const QStringList ignorelist, const QStringList skiplist); xg_shortcut xml_shortcut(QStringView name); void xml_run_parser(QXmlStreamReader& reader);